package com.hbnu.system.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.hbnu.system.config.PostDeserializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 
 * </p>
 *
 * @author ldh
 * @since 2023-05-16
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("award")
public class Award implements Serializable {


    private static final long serialVersionUID = 1L;

    /**
     * 主键 奖励证书编号
     */
    @ApiModelProperty(value = "主键")
    @TableId(value = "AwardID", type = IdType.ASSIGN_ID)
    private String AwardID;

    /**
     * 统计分类
     */
    @ApiModelProperty(value = "统计分类")
    @TableField("classifi")
    private String classifi;

    /**
     * 所属机构
     */
    @ApiModelProperty(value = "所属机构")
    @TableField("organization")
    private String organization;

    /**
     * 署名单位
     */
    @ApiModelProperty(value = "署名单位")
    @TableField("signedUnit")
    private String signedUnit;

    /**
     * 获奖证书编号
     */
    @ApiModelProperty(value = "获奖证书编号")
    @TableField("awardCertificateID")
    private String awardCertificateID;

    /**
     * 奖励名称
     */
    @ApiModelProperty(value = "奖励名称")
    @TableField("awardName")
    private String awardName;

    /**
     * 获奖成果
     */
    @ApiModelProperty(value = "获奖成果")
    @TableField("awardResult")
    private String awardResult;

    /**
     * 获奖日期
     */
    @ApiModelProperty(value = "获奖日期")
    @TableField("awardDate")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate awardDate;

    /**
     * 奖励级别
     */
    @ApiModelProperty(value = "奖励级别")
    @TableField("awardLevel")
    private String awardLevel;

    /**
     * 奖励类别
     */
    @ApiModelProperty(value = "奖励类别")
    @TableField("awardCate")
    private String awardCate;
    /**
     * 第一作者
     */
    @ApiModelProperty(value = "第一作者")
    @TableField("leadAuthor")
    private String leadAuthor;
    /**
     * 通讯作者
     */
    @ApiModelProperty(value = "通讯作者")
    @TableField("correspondingAuthor")
    private String correspondingAuthor;
    /**
     * 奖励批准号
     */
    @ApiModelProperty(value = "奖励批准号")
    @TableField("awardGrant")
    private String awardGrant;

    /**
     * 奖励申报单位
     */
    @ApiModelProperty(value = "奖励申报单位")
    @TableField("awardUnit")
    private String awardUnit;

    /**
     * 学科门类
     */
    @ApiModelProperty(value = "学科门类")
    @TableField("discipline")
    private String discipline;

    /**
     * 颁发奖励单位
     */
    @ApiModelProperty(value = "颁发奖励单位")
    @TableField("issueUnit")
    private String issueUnit;

    /**
     * 申报推荐书
     */
    @ApiModelProperty(value = "申报推荐书")
    @JsonDeserialize(using = PostDeserializer.class)
    private byte[] recommendation;

    /**
     * 附件
     */
    @ApiModelProperty(value="附件")
    @JsonDeserialize(using = PostDeserializer.class)
    private byte[] annex;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @TableField("notes")
    private String notes;

    /**
     * 录入人
     */
    @ApiModelProperty(value = "录入人")
    @TableField("entered")
    private String entered;

    /**
     * 录入日期
     */
    @ApiModelProperty(value = "录入日期")
    @TableField("enteredDate")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime enteredDate;

    /**
     * 所有作者
     */
    @ApiModelProperty(value = "所有作者")
    @TableField("allAuthor")
    private String allAuthor;

    /**
     * 关联项目
     */
    @ApiModelProperty(value = "关联项目")
    @TableField("associatedProjects")
    private String associatedProjects;

    /**
     * 审核结果
     */
    @ApiModelProperty(value = "审核结果")
    @TableField("status")
    private String status;

    /**
     * 审核学院
     */
    @ApiModelProperty(value = "审核学院")
    @TableField("dept")
    private String dept;

    /**
     * 未通过原因
     */
    @ApiModelProperty(value = "未通过原因")
    @TableField("reason")
    private String reason;

    @ApiModelProperty(value="量化分数")
    @TableField(value = "score")
    private float score;

}
